package OOA.com.JavaBasis.abstract1;
/*
* 抽象方法：加关键字abstract，且方法没有具体实现（没有方法体）
* 格式：权限修饰符 + abstract + 返回值类型 + 方法名（）;
*
* 抽象类：含有抽象方法的类，需要在class关键字前添加abstract
* 格式：public + abstract + class + 类名{}
* 抽象类可以有普通方法和构造方法
*
* 注意：
* 1.抽象类不能进行实例化（不能创建对象，不过可以通过向上造型的方式创建对象）
* 2.抽象类必须具有一个子类进行继承
* 3.子类继承抽象类之后，一定要实现/重写抽象类的所有抽象方法。如果不实现，则子类也必须是抽象类
* 4.抽象类是有构造方法的，目的是供子类创建对象时初始化父类的成员变量的
* 5.抽象类不一定有抽象方法，但是有抽象方法的一定是抽象类
*
* */
public abstract class Animal {
    int age;
    String name;
    public Animal(){

    }
    public Animal(int age,String name){
        this.name = name;
        this.age = age;
    }

    public abstract void eat();
    public abstract void sleep();
    public void method(){
        System.out.println("这是普通方法");
    }
}
